"""
输入某年某月某日，判断这一天是这一年的第几天？

> 以3月5日为例，应该先把前两个月的加起来，然后再加上5天即本年的第几天，特殊情况，闰年且输入月份大于2时需考虑多加一天。

"""

def calc_sort_day(year:int,month:int,day:int):
    month_days_list=[31,28,31,30,31,30,31,31,30,31,30,31]
    if is_odd_year(year):
        month_days_list[1]=29

    i=0
    count=0
    while i<month-1:
        count+=month_days_list[i]
        i+=1

    return count+day

def is_odd_year(year:int)->bool:
    if year%100==0:
        return year%400==0

    return year|0b11==0


if __name__ == '__main__':
    res=calc_sort_day(2024,3,29)
    print(f'count={res}')